//
//  SimPhotoBrowser.h
//  SimPhotoBrowser
//

#import <UIKit/UIKit.h>

#import "SimPhotoModel.h"
#import "SimBaseVC.h"
#import "SimDefine.h"

SimDefineValue(kSimPhotoBrowserFinishSelectColor, UIColor *)

SimDefineValue(kSimPhotoBrowserUnSelectedIcon, NSString *)
SimDefineValue(kSimPhotoBrowserSelectedIcon, NSString *)

SimDefineValue(kSimPhotoBrowserEditIcon, NSString *)
SimDefineValue(kSimPhotoBrowserDeleteIcon, NSString *)


@class SimPhotoBrowser;
typedef void(^SimPhotoIndexBlock)(SimPhotoBrowser *, NSInteger);
typedef BOOL(^SimPhotoIndexEnableBlock)(SimPhotoBrowser *, NSInteger);
typedef BOOL(^SimPhotoSelectedStatusChangedBlock)(SimPhotoBrowser *, NSInteger, BOOL);
typedef NSUInteger(^SimPhotoSelectCountBlock)(SimPhotoBrowser *);
typedef void(^SimPhotoFinishBlock)(SimPhotoBrowser *, BOOL);


@interface SimPhotoBrowser : SimBaseVC <UIScrollViewDelegate, UIActionSheetDelegate>


- (id)initWithImageContents:(NSArray *)imageViews index:(NSInteger)index;

@property (nonatomic, strong, readonly) NSMutableArray *imageContents;
@property (nonatomic, strong, readonly) NSMutableArray *photoModels;
@property (nonatomic, readonly) NSUInteger currentPageIndex;

@property (nonatomic, copy) SimPhotoIndexBlock willShowPageIndex;
@property (nonatomic, copy) SimPhotoFinishBlock didFinishBrowser;

//save, edit, delete
@property (nonatomic, assign) BOOL enableSave;
@property (nonatomic, assign) BOOL enableDelete;
@property (nonatomic, assign) BOOL enableEdit;

//mul select
@property (nonatomic) BOOL enableSelect;
@property (nonatomic, copy) SimPhotoIndexEnableBlock isSelectedForIndex;
@property (nonatomic, copy) SimPhotoSelectedStatusChangedBlock selectedStatusChanged;
@property (nonatomic, copy) SimPhotoSelectCountBlock allSelectCount;

//
@property (nonatomic, strong) UIColor *zoomScrollViewBgColor;

- (void)reloadData;
- (void)reloadCurrentPage;


@end
